Management of system events using one or more event attributes

ABSTRACT

A method for managing a system may include gathering, with a system manager, data about a first system event and a second system event. The method further includes determining, with the system manager, a plurality of first system event attribute values and a plurality of second system event attribute values. The first and second system event attribute values are based on the data gathered about the first and second system event. The method further includes generating, with the system manager, a display of the plurality of first system event attribute values in hierarchal relation to the plurality of second system event attribute values.

FIELD

The present invention generally relates to system management, and more specifically, the determination of event attributes.

BACKGROUND

Computer networks or systems may include many components such as servers, cooling systems, clients, and switches. Each of these components may also have many sub-components such as memory, independent cooling systems, network adapters, and processors for example. Like most things, the components and sub-components of systems malfunction. Some malfunctions may affect the systems minimally while some malfunctions will be catastrophic to the systems if not resolved quickly.

SUMMARY

One embodiment is directed to a method for managing a system. The method includes gathering, with a system manager, data about a first system event and a second system event. The method further includes determining, with the system manager, a plurality of first system event attribute values and a plurality of second system event attribute values. The first and second system event attribute values are based on the data gathered about the first and second system event. The method further includes generating, with the system manager, a display of the plurality of first system event attribute values in hierarchal relation to the plurality of second system event attribute values.

Another embodiment is directed to a computer readable storage medium having instructions stored thereon which, when executed, cause a processor to perform the method described above.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 depicts a high-level block diagram of an exemplary system for implementing an embodiment.

FIG. 2 depicts a block diagram of an example data structure for an event value attribute table, according to an embodiment.

FIG. 3A depicts a block diagram of an example data structure for a dimensions table, according to an embodiment.

FIG. 3B depicts a block diagram of an example data structure for a value table, according to an embodiment.

FIG. 4 depicts a graphical display of a user interface, according to an embodiment.

FIG. 5 depicts an alternative graphical display of the user interface of FIG. 4, according to an embodiment.

FIG. 6 depicts another alternative graphical display of the user interface of FIG. 4, according to an embodiment.

FIG. 7 depicts a flow chart of an exemplary method to generate a graphical display for events using two or more data attributes of the event, according to an embodiment.

In the drawings and the Detailed Description, like numbers generally refer to like components, parts, steps, operations, and processes.

DETAILED DESCRIPTION

A major and complex problem today is managing computer networks or systems. The number of systems and the ever increasing size of systems make management of systems a difficult task when problems, errors, or other events arise. Event management of systems is one of the most important, yet least satisfied, set of tasks for system administrative users. The amount of events, the complexity of events, and roles system administrative users have in responding to events are but a few examples of how difficult it is to manage events on a system. Furthermore, there are many reasons for event management being a difficult task such as the number of interactions of the products, poor messages, and lack of detail.

User interfaces that present the events to administrative users are one such difficulty. These user interfaces are often oversimplified, one-dimensional user interfaces. Typically, the dimension may have a scale such as Critical, Warning, Information, and OK/Normal. This provides very little information when there are usually many attributes that may be related to and involved in the event, as will be discussed below. Having a user interface that allows the user to view the events in relation to other events using multiple event data attributes may allow the user to better manage the system and prioritize events.

Referring to the drawings, wherein like numbers denote like parts throughout the several views, FIG. 1 depicts a high-level block diagram representation of a server computer system 100 connected to a client computer system 102 via a network 104, according to an embodiment of the present invention. The terms “server” and “client” are used herein for convenience only, and in various embodiments a computer system that operates as a client computer in one environment may operate as a server computer in another environment, and vice versa. The mechanisms and apparatus of embodiments of the present invention apply equally to any appropriate computing system, including a computer system that does not employ the client-server model.

The major components of the computer system 100 may include one or more processors 106, a main memory 108, a terminal interface 110, a storage interface 112, an I/O (Input/Output) device interface 114, and a network interface 116, all of which may be communicatively coupled, directly or indirectly, for inter-component communication via a memory bus 118, an I/O bus 120, and an I/O bus interface unit 122.

The computer system 100 may contain one or more general-purpose programmable central processing units (CPUs) 106A, 106B, 106C, and 106D, herein generically referred to as the processor 106. In an embodiment, the computer system 100 may contain multiple processors typical of a relatively large system; however, in another embodiment the computer system 100 may alternatively be a single CPU system. Each processor 106 may execute instructions stored in the main memory 108 and may include one or more levels of on-board cache.

In an embodiment, the main memory 108 may include a random-access semiconductor memory, storage device, or storage medium (either volatile or non-volatile) for storing or encoding data and programs. In another embodiment, the main memory 108 may represent the entire virtual memory of the computer system 100, and may also include the virtual memory of other computer systems coupled to the computer system 100 or connected via the network 104. The main memory 108 may be conceptually a single monolithic entity, but in other embodiments the main memory 108 may be a more complex arrangement, such as a hierarchy of caches and other memory devices.

The main memory 108 may store or encode an event data value table 130, a dimensions table 132, a values table 134, and a system manager 136. Although the event data value table 130, the dimensions table 132, the values table 134, and the system manager 136 are illustrated as being contained within the memory 108 in the computer system 100, in other embodiments some or all of them may be on different computer systems and may be accessed remotely, e.g., via the network 104. The computer system 100 may use virtual addressing mechanisms that allow the programs of the computer system 100 to behave as if they only have access to a large, single storage entity instead of access to multiple, smaller storage entities. Thus, while the event data value table 130, the dimensions table 132, the values table 134, and the system manager 136 are illustrated as being contained within the main memory 108, these elements are not necessarily completely contained in the same storage device at the same time. Further, although the event data value table 130, the dimensions table 132, the values table 134, and the system manager 136 are illustrated as being separate entities, in other embodiments some of them, portions of some of them, or all of them may be packaged together.

In an embodiment, the event data value table 130, the dimensions table 132, the values table 134, and the system manager 136 may include instructions or statements that execute on the processor 106 or instructions or statements that may be interpreted by instructions or statements that execute on the processor 106, to carry out the functions as further described below with reference to FIGS. 2, 3A, 3B, 4, 5, 6, and 7. In another embodiment, the event data value table 130, the dimensions table 132, the values table 134, and the system manager 136, or two or more of these elements may be implemented in hardware via semiconductor devices, chips, logical gates, circuits, circuit cards, other physical hardware devices, or a combination of these devices in lieu of, or in addition to, a processor-based system. In an embodiment, the event data value table 130, the dimensions table 132, the values table 134, and the system manager 136, or two or more of these elements may include data in addition to instructions or statements.

The memory bus 118 may provide a data communication path for transferring data among the processor 106, the main memory 108, and the I/O bus interface 122. The I/O bus interface 122 may be further coupled to the I/O bus 120 for transferring data to and from the various I/O units. The I/O bus interface unit 122 communicates with multiple I/O interface units 110, 112, 114, and 116, which may also be known as I/O processors (IOPs) or I/O adapters (IOAs), through the I/O bus 120.

The I/O interface units support communication with a variety of storage and I/O devices. For example, the terminal interface unit 110 supports the attachment of one or more user I/O devices 124, which may include user output devices (such as a video display device, speaker, or television set) and user input devices (such as a keyboard, mouse, keypad, touchpad, trackball, buttons, light pen, or other pointing device). A user may manipulate the user input devices utilizing a user interface, in order to provide input data and commands to the user I/O device 124 and the computer system 100, and may receive output data via the user output devices. For example, a user interface may be presented via the user I/O device 124, such as displayed on a display device, played via a speaker, or printed via a printer.

The storage interface 112 supports the attachment of one or more disk drives or direct access storage devices 126 (which are typically rotating magnetic disk drive storage devices, although they could alternatively be other storage devices, including arrays of disk drives configured to appear as a single large storage device to a host computer). In another embodiment, the storage device 126 may be implemented via any type of secondary storage device. The contents of the main memory 108, or any portion thereof, may be stored to and retrieved from the storage device 126 as needed. The I/O device interface 114 may provide an interface to any of various other input/output devices or devices of other types, such as printers or fax machines. The network interface 116 may provide one or more communications paths from the computer system 100 to other digital devices and computer systems 102; such paths may include, e.g., one or more networks 104.

FIG. 2 depicts a block diagram of an example data structure for an event data attribute value table 130, according to one embodiment. The event data attribute value table 130 may be created by the system manager 136. The event data attribute value table 130 may include event attributes 202 and the attribute values 204. The event attributes 202 may include the attributes: event ID 206, the event description 208, time/date of event 210, duration of event 212, source 214, co-factors 216, progress/state of resolution 218, importance 220, time sensitivity 222, urgency 224, risk 226, resolvability 228, potential to ripple 230, redundancy 232, ownership and roles 234, frequency 236, scope 238, fuzziness 240, service level agreements (SLAs) 242, and cost 244. The values 204 contained in the fields may represent the attribute values of the system event. This information may be received from any system source. Sources may include components of the system, which may include sensors that detect and send data about the components of the system. The data may also be received from users of the system manager 136. In other embodiments, the data may be received from one or more systems. In yet other embodiments, data from other attributes not listed may be added to the event data attribute value table 130.

According to an embodiment, the event ID attribute 206 may identify the name of the event in which the attribute values 204 applies. The event description attribute 208 may provide a description of the event such as what the event is. The time/date attribute 210 may provide the day and time the event occurred. The duration attribute 212 may provide how long the event has been occurring. The source attribute 214 may include data as to what is the root source of the event. The co-factors attribute 216 may list whether the event is a standalone event or if other system events are causing the event. The progress/state of resolution attribute 218 may include data about the status of the event or what kind of response has already been taken as a result of the event. For example, if the attribute data of the progress/state of resolution attribute 218 may be New, Acknowledged, Working, Resolved, or Closed.

Other event attributes 202 may include the importance attribute 220, which may include information on the importance of the event such as the overall impact of the event on the system 100. Also, some components may be more critical than others, e.g., external facing database transactions versus internal development and mail servers. The system manager 136 may use data of the event and other event attributes to determine the importance attribute 220. In another embodiment, the user may determine the importance 220 of the event. The time sensitivity attribute 222 may include data on how quickly an event may need to be addressed. The urgency attribute 224 may be a combination of other attributes such as importance and time sensitivity. In one embodiment, event attributes may influence or contribute to other event attributes.

The risk attribute 226 may include the odds on more components incurring events based on the redundancy of the subcomponents within the components, e.g., a single drive failure in RAID 5 may not be disastrous but a redundant, second drive failure would be disastrous. The resolvability attribute 228 may include data on the difficulty of resolving the event. Some users may benefit from the resolvability attribute 228 when applying it to user load distribution and queuing. The potential to ripple attribute 230 may include information on whether one event could lead to another event. The redundancy attribute 232 may include data on the amount of backups configured in the system. The ownership and roles attribute 234 may include data on the user's ownership in fixing issues or problems. A user may enter the user's credentials and the ownership into the system manager 136 and the duties of the user's position may affect other attributes. The frequency attribute 236 may include data on how frequent the event arises. Some events may occur repeatedly while other events are intermittent. The scope attribute 238 may include data regarding how much of the system the system event is impacting, e.g., a single subcomponent may be affected or the entire system may be affected. The fuzziness attribute 240 may include data on how defined the system event is. The event may be known otherwise it may be categorized as unknown, undefined, or indeterminate. The SLA attribute 242 may include data about the levels of coverage that service agreements cover in relation to the event. The cost attribute 244 may include the estimated cost of the resolving an event.

Each event attribute 202 may contain the specific attribute value 204 of each attribute 202. The attribute value 204 may also be scaled for each event attribute 202 in a hierarchal form such as a range where an attribute of the system event is compared to the same attribute of other system events. This range may also be referred to as the attribute value. Likewise, each separate attribute may be normalized to easily compare attributes to each other. In the event data attribute value table 130, some of the attributes may be given a number range 1-10 by the system manager 136 where the higher the number may represent the higher the severity. This range may normalize each attribute to better manage the events. For instance, cost attribute 244 may be measurable in dollars while the potential to ripple attribute 230 may be determined by the number of other components reliant on the event component or some other unquantifiable factor. The system manager 136 may have instructions to normalize the two attributes 230, 244 such that an event that costs $500-$750 to repair may receive an attribute value of 5 while an event that costs $750-$1000 may receive an attribute value of 6. If a component such as a fan does not work, the system manager 136 may categorize the attribute value of that event as a 3 according to instructions in the system manager 136. However, if a component that controls several fans that cool processors in the system is faulty, then the system event may be given an attribute value of an 8 since the there is a higher potential for more fans to go down, which may cause the processors to overheat. If the processors overheat, then other components in the system may not function properly.

FIG. 3A depicts a block diagram of an example data structure for the dimensions table 132, according to one embodiment. The system manager 136 may create the dimensions table 132. The dimensions table 132 may include the graph dimensions 302 and the event attributes 202. The event attributes 202 may be selected by the user to correspond with a graph dimension 302. The graph dimensions 302 may include, but are not limited to, an x-coordinate 304, a y-coordinate 306, a z-coordinate 308, a bubble size 310, a bubble color 312, a bubble number 314, and a bubble transparency 316. Each graph dimension 302 may have a selected event attribute 202. For instance, in table 132 the x-coordinate 304 may represent the importance attribute 220. The y-coordinate 306 may represent the time sensitivity attribute 222. The z-coordinate 308 may represent the cost attribute 244. The bubble size 310 may represent the SLA 242. The bubble color 312 may represent the risk attribute 226. The bubble number 314 may represent the potential to ripple attribute 230. The bubble transparency 316 may represent no attribute and therefore may not be featured on the display.

FIG. 3B depicts a block diagram of an example data structure for values table 134, according to one embodiment. The values table 134 may be created by the system manager 136. The values table 134 may include the dimensions 302. The values table 134 may also include each event by their event ID 206. As illustrated as an example in FIG. 3B, events 320, 325, 330, 335, 340, 345, and 350 may make up the table. Each event may have its own event data attributes value table 130. The system manager 136 may place the attribute value 204 from the event data attribute value table 130 for each event into the values table 134 according to the event and the event attribute 202 paired to each dimension 302 in the dimensions table 132. For instance, the attribute value of 5.9 in the event 320 column and in the x-coordinate row in values table 134 represents the attribute value of the importance attribute 220 of event 320.

FIG. 4 illustrates a graphical display of graph 400, according to one embodiment. The system manager 136 may create graph 400 from the data in the tables 130, 132, and 134. A user may use the graph 400 to prioritize events occurring in the system. The graph 400 may display the events 320, 325, 330, 335, 340, 345, and 350 as bubbles or circles, as an example. Graph 400, as illustrated, may display the x-coordinates 304 and the y-coordinates 306. In other embodiments, the z-coordinates 308 may also be displayed or displayed in place of the x-coordinate 304 or y-coordinate 306. The representation of the z-coordinates 308 may be seen from the bubbles representing events 320, 325, and 330. Event 330 has a higher attribute value in the z-coordinate 308 row of the values table 134 than event 325, which in turn is higher than event 320. Therefore, in graph 400 the bubble representing event 330 is illustrated as being on top of event 325, which in turn is on top of event 320. The bubble size dimension 310 may be seen by the various sized bubbles. The larger the attribute value is for each event in values table 134 for the SLA attribute 242, the larger the bubble is in graph 400, according to one embodiment. The color dimension 312 may be seen by the different hash mark styles in each bubble. The bubble number dimension 314 may be seen by the numbers located in the center of the bubbles.

In one embodiment, the graph 400 may be in the form of an interactive report, in that the user may control and vary the dimensions and their scopes in the graph display. For instance, the user could pick another dimension in a drop-down list to add to the graphical display. In another embodiment, the user may change one of the attributes assigned to a dimension to another attribute e.g., the user may change the bubble size dimension 310 from the SLA attribute 242 to the resolvability attribute 228.

In another embodiment, the graph 400 may have a mode where the attribute choices automatically vary in respect to the attributes selected to be shown. For example, the four most interesting or varying attributes show on the graphical display 400 while the attributes of the events, which are similar to each other in their attribute values, do not show up on graph 400.

FIG. 5 illustrates a graph 500, according to one embodiment. The graph 500 may be contextual to a selection or have an emphasis dimension. For instance, a user may select an event, like one being analyzed in the graph 400 of FIG. 4. Once selected, the other events correlated or highly related to the first event may be emphasized. If the emphasized events are related, e.g., a SAN storage or networking switch being used by the server with the event, then they may remain the same color dimension while the color dimension of unrelated events fades or disappears. This feature may also work with other attributes. A common attribute between the events 320, 325, 330, 335, 340, 345, and 350 may be assigned to the emphasis dimension. If an event is selected on the graph display 400 any event that correlates with the selected event may be emphasized over the other events. For example, the time sensitivity attribute 222 may be assigned to the emphasis dimension instead of the y-coordinate dimension 306. If the user selects event 340 on the graph display 400, then event 350 may be emphasized over the remaining displayed events 320, 325, 330, 335, and 345 because it has a correlated attribute value or substantially similar attribute value to event 340. Events 340 and 350 may be emphasized by, but not limited to, remaining the same color while the other events fade or disappear. As shown in FIG. 5, event 340 may be selected with a selection tool 510. Event 350 may remain displayed while the other events 320, 325, 330, 335, and 345 of graph 400 are no longer displayed.

FIG. 6 illustrates graph 600, according to another embodiment. In graph 600, the bubbles may be tracked over time by displaying multiple bubbles for a single event. Showing multiple bubbles of the same event may illustrate the change in the event attribute over time. In graph 600, event 340 of FIG. 4 may be selected to be displayed and tracked over time. The system manager 136 may gather data about the event 340 at some time interval. Event 340 a may be the event 340 after a first time interval. As illustrated in graph 600, event 340 a may have more importance 220, cost 244, and potential to ripple 230 but less time sensitivity 222 than during the initial time of event 340. At a second time interval event 340 may be event 340 b. At the second time interval, event 340 b may have a greater importance 220, time sensitivity 222, cost 244, risk 226, and potential to ripple 230 than event 340 or event 340 a.

In yet another embodiment, the graph 600 may forecast and show a vector 610 for potential changes if the event 340 b is not resolved over a third time interval. For example, the user may hover a mouse pointer over event 340 b. A predicted forecast of the event 340 b over the third time interval may be overlaid on the same display as future event 340 c. In FIG. 6, future event 340 c may have even a greater importance 220, time sensitivity 222, cost 244, risk 226, and potential to ripple 230 than event 340, event 340 a, or 340 b. The system manager 136 may contain data of past events that are similar to a current event and keep track of the change in the attributes of the past event over time to make a prediction. Likewise, a user may enter data on how an event may progress over time.

FIG. 7 is a block diagram of a method 700 of managing a system, according to one embodiment. In operation 702, data is gathered, with the system manager 136, relating to a first system event. In operation 704, the determination, with the system manager 136, of a plurality of first system event attribute values with the data gathered about the first system event may occur. In operation 706, data is gathered, with the system manager 136, relating to a second system event. In operation 708, the determination, with the system manager 136, of a plurality of second system event attribute values with the data gathered about the second system event may occur. In operation 710, a display may be generated, with the system manger 136, of the plurality of first system event attribute values in hierarchal relation to the plurality of second system event attribute values.

Referring back to FIG. 1, in various embodiments, the computer system 100 may be a multi-user mainframe computer system, a single-user system, or a server computer or similar device that has little or no direct user interface, but receives requests from other computer systems (clients). In other embodiments, the computer system 100 may be implemented as a desktop computer, portable computer, laptop or notebook computer, tablet computer, pocket computer, telephone, smart phone, or any other appropriate type of electronic device.

The computer system 102 may include some or all of the hardware and/or computer program elements of the computer system 100. The various program components implementing various embodiments of the invention may be implemented in a number of manners, including using various computer applications, routines, components, programs, objects, modules, data structures, etc., and are referred to herein as “computer programs,” or simply “programs.”

The computer programs include one or more instructions or statements that are resident at various times in various memory and storage devices in the computer system 100 and that, when read and executed by one or more processors in the computer system 100, or when interpreted by instructions that are executed by one or more processors, cause the computer system 100 to perform the actions necessary to execute steps or elements including the various aspects of embodiments of the invention. Aspects of embodiments of the invention may be embodied as a system, method, or computer program product. Accordingly, aspects of embodiments of the invention may take the form of an entirely hardware embodiment, an entirely program embodiment (including firmware, resident programs, micro-code, etc., which are stored in a storage device), or an embodiment combining program and hardware aspects that may all generally be referred to herein as a “circuit,” “module,” or “system.” Further, embodiments of the invention may take the form of a computer program product embodied in one or more computer-readable medium(s) having computer-readable program code embodied thereon.

Any combination of one or more computer-readable medium(s) may be utilized. The computer-readable medium may be a computer-readable signal medium or a computer-readable storage medium. For example, a computer-readable storage medium may be, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (an non-exhaustive list) of the computer-readable storage media may include: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM) or Flash memory, an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer-readable storage medium may be any tangible medium that can contain, or store, a program for use by or in connection with an instruction execution system, apparatus, or device.

A computer-readable signal medium may include a propagated data signal with computer-readable program code embodied thereon, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer-readable signal medium may be any computer-readable medium that is not a computer-readable storage medium and that communicates, propagates, or transports a program for use by, or in connection with, an instruction execution system, apparatus, or device. Program code embodied on a computer-readable medium may be transmitted using any appropriate medium, including but not limited to, wireless, wire line, optical fiber cable, Radio Frequency, or any suitable combination of the foregoing.

Computer program code for carrying out operations for aspects of embodiments of the present invention may be written in any combination of one or more programming languages, including object oriented programming languages and conventional procedural programming languages. The program code may execute entirely on the user's computer, partly on a remote computer, or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).

Aspects of embodiments of the invention are described below with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products. Each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams may be implemented by computer program instructions embodied in a computer-readable medium. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified by the flowchart and/or block diagram block or blocks. These computer program instructions may also be stored in a computer-readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer-readable medium produce an article of manufacture, including instructions that implement the function/act specified by the flowchart and/or block diagram block or blocks.

The computer programs defining the functions of various embodiments of the invention may be delivered to a computer system via a variety of tangible computer-readable storage media that may be operatively or communicatively connected (directly or indirectly) to the processor or processors. The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus, or other devices to produce a computer-implemented process, such that the instructions, which execute on the computer or other programmable apparatus, provide processes for implementing the functions/acts specified in the flowcharts and/or block diagram block or blocks.

The flowchart and the block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products, according to various embodiments of the present invention. In this regard, each block in the flowcharts or block diagrams may represent a module, segment, or portion of code, which includes one or more executable instructions for implementing the specified logical function(s). In some embodiments, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. Each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flow chart illustrations, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, in combinations of special purpose hardware and computer instructions.

Embodiments of the invention may also be delivered as part of a service engagement with a client corporation, nonprofit organization, government entity, or internal organizational structure. Aspects of these embodiments may include configuring a computer system to perform, and deploying computing services (e.g., computer-readable code, hardware, and web services) that implement, some or all of the methods described herein. Aspects of these embodiments may also include analyzing the client company, creating recommendations responsive to the analysis, generating computer-readable code to implement portions of the recommendations, integrating the computer-readable code into existing processes, computer systems, and computing infrastructure, metering use of the methods and systems described herein, allocating expenses to users, and billing users for their use of these methods and systems. In addition, various programs described herein may be identified based upon the application for which they are implemented in a specific embodiment of the invention. But, any particular program nomenclature used herein is used merely for convenience, and thus embodiments of the invention are not limited to use solely in any specific application identified and/or implied by such nomenclature. The exemplary environments illustrated in FIG. 1 are not intended to limit the present invention. Indeed, other alternative hardware and/or program environments may be used without departing from the scope of embodiments of the invention.

The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a,” “an,” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “includes” and/or “including,” when used in this specification, specify the presence of the stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof. In the previous detailed description of exemplary embodiments of the invention, reference was made to the accompanying drawings (where like numbers represent like elements), which form a part hereof, and in which is shown by way of illustration specific exemplary embodiments in which the invention may be practiced. These embodiments were described in sufficient detail to enable those skilled in the art to practice the invention, but other embodiments may be utilized and logical, mechanical, electrical, and other changes may be made without departing from the scope of the present invention. In the previous description, numerous specific details were set forth to provide a thorough understanding of embodiments of the invention. But, embodiments of the invention may be practiced without these specific details. In other instances, well-known circuits, structures, and techniques have not been shown in detail in order not to obscure embodiments of the invention.

Different instances of the word “embodiment” as used within this specification do not necessarily refer to the same embodiment, but they may. Any data and data structures illustrated or described herein are examples only, and in other embodiments, different amounts of data, types of data, fields, numbers and types of fields, field names, numbers and types of rows, records, entries, or organizations of data may be used. In addition, any data may be combined with logic, so that a separate data structure may not be necessary. The previous detailed description is, therefore, not to be taken in a limiting sense. 

What is claimed is:
 1. A method for managing a system comprising: gathering, with a system manager, data about a first system event; determining, with the system manager, a plurality of first system event attribute values with the data gathered about the first system event; gathering, with the system manager, data about a second system event; determining, with the system manager, a plurality of second system event attribute values with the data gathered about the second system event; and generating, with the system manager, a display of the plurality of first system event attribute values in hierarchal relation to the plurality of the second system event attribute values.
 2. The method of claim 1, further comprising: assigning, with the system manager, a common attribute of the plurality of first system event attribute values and the plurality of second system event attribute values to a dimension.
 3. The method of claim 1, further comprising: tracking, with the system manager, changes of the plurality of first system event attribute values and the plurality of second system event attribute values over a first time interval.
 4. The method of claim 1, further comprising: predicting, with the system manager, an attribute value of at least one future system event.
 5. The method of claim 2, further comprising: assigning, with the system manager, the common attribute to an emphasis dimension; and graphically emphasizing a particular second system event attribute value when correlated with a particular first system event attribute value.
 6. The method of claim 1, further comprising: normalizing, with the system manager, common attribute values of the plurality of first system event attribute values and the plurality of second system event attribute values to a common scale.
 7. The method of claim 1, wherein generating the display is generating a bubble graph.
 8. The method of claim 1, wherein the hierarchal relation is two or more graph dimensions.
 9. The method of claim 8, wherein the graph dimensions display the most variable attribute values of the plurality of the first system event attribute values and the plurality of the second system event attribute values.
 10. A computer readable storage medium having instructions stored thereon which, when executed, cause a processor to perform the following operations: gathering, with a system manager, data about a first system event; determining, with the system manager, a plurality of first system event attribute values with the data gathered about the first event; gathering, with the system manager, data about a second system event; determining, with the system manager, a plurality of second system event attribute values with the data gathered about the second event; and generating, with the system manager, a display of the plurality of first system event attribute values in hierarchal relation to the plurality of the second system event attribute values.
 11. The storage medium of claim 10, further comprising: assigning, with the system manager, a common attribute of the plurality of first system event attribute values and the plurality of second system event attribute values to a dimension.
 12. The storage medium of claim 10, further comprising: tracking, with the system manager, changes of the plurality of first system event attribute values and the plurality of second system event attribute values over a first time interval.
 13. The storage medium of claim 10, further comprising: predicting, with the system manager, an attribute value of at least one future system event.
 14. The storage medium of claim 11, further comprising: assigning, with the system manager, the common attribute to an emphasis dimension; and graphically emphasizing a particular second system event attribute value when correlated with a particular first system event attribute value.
 15. The storage medium of claim 10, further comprising: normalizing, with the system manager, common attribute values of the plurality of first system event attribute values and the plurality of second system event attribute values to a common scale.
 16. The storage medium of claim 10, wherein generating the display is generating a bubble graph.
 17. The storage medium of claim 10, wherein the hierarchal relation is two or more graph dimensions.
 18. The storage medium of claim 17, wherein the graph dimensions display the most variable attribute values of the plurality of the first system event attribute values and the plurality of the second system event attribute values.
 19. A method for managing a system comprising: gathering, with a system manager, data about a first system event; determining, with the system manager, a plurality of first system event attribute values with the data gathered about the first event; gathering, with the system manager, data about a second system event; determining, with the system manager, a plurality of second system event attribute values with the data gathered about the second event; assigning each unique first system event attribute value and each unique second system event attribute to a dimension; and generating a display of the plurality of first event attribute values in relation to the plurality of second event attribute values according to the assigned dimensions. 